package com.example.a_java.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.a_java.util.ExcelUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 合同信息实体�?
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("loan_contract")
public class LoanContract extends BaseEntity {

    /**
     * 合同ID
     */
    @ExcelUtils.ExcelExport(name="合同ID")
    @TableId(value = "contract_id", type = IdType.AUTO)
    private Long contractId;

    /**
     * 合同编号
     */
    @ExcelUtils.ExcelExport(name="合同编号")
    private String contractNo;

    /**
     * 申请ID
     */
    @ExcelUtils.ExcelExport(name="申请ID")
    private Long applyId;

    /**
     * 客户ID
     */
    @ExcelUtils.ExcelExport(name="客户ID")
    private Long custId;

    /**
     * 贷款金额
     */
    @ExcelUtils.ExcelExport(name="贷款金额")
    private BigDecimal loanAmount;

    /**
     * 贷款期限(�?
     */
    @ExcelUtils.ExcelExport(name="贷款期限")
    private Integer loanTerm;

    /**
     * 贷款用�?
     */
    @ExcelUtils.ExcelExport(name="贷款用")
    private String loanPurpose;

    /**
     * 还款方式(1:等额本息 2:等额本金 3:先息后本 4:一次性还本付�?
     */
    @ExcelUtils.ExcelExport(name="还款方式")
    private Integer repayMethod;

    /**
     * 担保方式(1:信用 2:保证 3:抵押 4:质押)
     */
    @ExcelUtils.ExcelExport(name="担保方式")
    private Integer guarMethod;

    /**
     * 年化利率
     */
    @ExcelUtils.ExcelExport(name="年化利率")
    private BigDecimal interestRate;

    /**
     * 签约日期
     */
    @ExcelUtils.ExcelExport(name="签约日期")
    private LocalDate signDate;

    /**
     * 开始日�?
     */
    @ExcelUtils.ExcelExport(name="开始日")
    private LocalDate startDate;

    /**
     * 结束日期
     */
    @ExcelUtils.ExcelExport(name="结束日期")
    private LocalDate endDate;

    /**
     * 合同状�?10:待签�?20:已签�?30:已生�?40:已结�?50:已终�?
     */
    @ExcelUtils.ExcelExport(name="合同状态")
    private Integer contractStatus;
    
    /**
     * 合同类型(loan:贷款合同 guarantee:担保合同 mortgage:抵押合同)
     */
    @ExcelUtils.ExcelExport(name="合同类型")
    private String contractType;
    
    /**
     * 签署时间
     */
    @ExcelUtils.ExcelExport(name="签署时间")
    private LocalDateTime signTime;
    
    /**
     * 生效时间
     */
    @ExcelUtils.ExcelExport(name="生效时间")
    private LocalDateTime effectiveTime;
    
    /**
     * 到期时间
     */
    @ExcelUtils.ExcelExport(name="到期时间")
    private LocalDateTime expiryTime;
    
    /**
     * 终止原因
     */
    @ExcelUtils.ExcelExport(name="终止原因")
    private String terminateReason;
    
    /**
     * 终止日期
     */
    @ExcelUtils.ExcelExport(name="终止日期")
    private LocalDate terminateDate;
    
    /**
     * 合同内容
     */
    @ExcelUtils.ExcelExport(name="合同内容")
    private String content;
} 
